package com.starrocks.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 同步日志实体
 */
@Data
@TableName("sync_log")
public class SyncLogEntity {
    
    @TableId(type = IdType.AUTO)
    private Long id;
    
    /**
     * 同步配置ID
     */
    private Long configId;
    
    /**
     * 源表名
     */
    private String sourceTableName;
    
    /**
     * 目标表名
     */
    private String targetTableName;
    
    /**
     * 同步类型：FULL-全量同步, INCREMENTAL-增量同步
     */
    private String syncType;
    
    /**
     * 同步状态：SUCCESS-成功, FAILED-失败, RUNNING-运行中
     */
    private String syncStatus;
    
    /**
     * 开始时间
     */
    private LocalDateTime startTime;
    
    /**
     * 结束时间
     */
    private LocalDateTime endTime;
    
    /**
     * 执行时长（毫秒）
     */
    private Long duration;
    
    /**
     * 总数据量
     */
    private Integer totalCount;
    
    /**
     * 成功数量
     */
    private Integer successCount;
    
    /**
     * 失败数量
     */
    private Integer failCount;
    
    /**
     * 最后同步时间点（数据的update_time）
     */
    private LocalDateTime lastSyncTime;
    
    /**
     * 错误信息
     */
    private String errorMessage;
    
    /**
     * 源表数据（JSON格式，仅失败记录保存，方便排查问题）
     */
    private String sourceData;
    
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
}

